function Vue(options) {
    this.$options = {
        ...Vue.prototype.options,
        ...options
    };
    this.$options.beforeCreate.call(this);
}
//当调用Vue.use方法的时候，会获取插件，调用插件的install方法
Vue.use = function (plugin) {
  plugin.install(Vue);
};
Vue.mixin = function (mixinOptions) {
    Vue.prototype.options = mixinOptions;
};
var Vuex = {
  //插件需要提供一个install方法属性，接收Vue类作为参数
  install(Vue) {
    Vue.mixin({
      beforeCreate() {
        if (this.$options.store) {
            Vue.prototype.$store = this.$options.store;
          }
      },
    });
  },
};
//Vue提供了一套插件机制
//可以使用Vue.use使用一个插件
Vue.use(Vuex);
//以后再创建Vue实例的时候，它就可以获取Vue原型上新添加的属性和方法
var vm = new Vue({store:{name:'我是仓库'}});
console.log(vm.$store); //18
console.log(vm.__proto__.$store); //18
